package mx.com.asteca.persistencia.entidades;
// Generated 31/07/2013 11:41:38 AM by Hibernate Tools 3.2.1.GA


import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Cursos generated by hbm2java
 */
@Entity
@Table(name="cursos"
    ,catalog="astecadb"
    , uniqueConstraints = {@UniqueConstraint(columnNames="GRUPO"), @UniqueConstraint(columnNames="REFERENCIA")} 
)
public class Cursos  implements java.io.Serializable {


     private int idCurso;
     private String nombre;
     private Integer idArea;
     private Integer idProgrEstudios;
     private Date fechaIni;
     private Date fechaFin;
     private Integer idSede;
     private String horaIni;
     private String horaFin;
     private Integer grupo;
     private String referencia;
     private String empresa;
     private String alumnos;
     private String instructor;
     private Integer horasInstructor;
     private String practica;
     private Integer diasImp;
     private String emision;
     private Set<CalifCursos> califCursoses = new HashSet<CalifCursos>(0);
     private Set<AlumnosCursos> alumnosCursoses = new HashSet<AlumnosCursos>(0);
     private Set<CursosMaterias> cursosMateriases = new HashSet<CursosMaterias>(0);
     private Set<AsistenciaCurso> asistenciaCursos = new HashSet<AsistenciaCurso>(0);
     private Instructores instructores;

    public Cursos() {
    }

	
    public Cursos(int idCurso) {
        this.idCurso = idCurso;
    }
    public Cursos(int idCurso,String nombre ,Integer idArea, Integer idProgrEstudios, Date fechaIni, Date fechaFin, Integer idSede, String horaIni, String horaFin, Integer grupo, String referencia, Set<CalifCursos> califCursoses, Set<AlumnosCursos> alumnosCursoses, Set<CursosMaterias> cursosMateriases, Set<AsistenciaCurso> asistenciaCursos) {
       this.idCurso = idCurso;
       this.nombre =nombre;
       this.idArea = idArea;
       this.idProgrEstudios = idProgrEstudios;
       this.fechaIni = fechaIni;
       this.fechaFin = fechaFin;
       this.idSede = idSede;
       this.horaIni = horaIni;
       this.horaFin = horaFin;
       this.grupo = grupo;
       this.referencia = referencia;
       this.califCursoses = califCursoses;
       this.alumnosCursoses = alumnosCursoses;
       this.cursosMateriases = cursosMateriases;
       this.asistenciaCursos = asistenciaCursos;
       
    }
   
     @Id 
     @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="ID_CURSO", unique=true, nullable=false)
    public int getIdCurso() {
        return this.idCurso;
    }
    
    public void setIdCurso(int idCurso) {
        this.idCurso = idCurso;
    }
    
    @Column(name="ID_AREA")
    public Integer getIdArea() {
        return this.idArea;
    }
    
    public void setIdArea(Integer idArea) {
        this.idArea = idArea;
    }
    
    @Column(name="ID_PROGR_ESTUDIOS")
    public Integer getIdProgrEstudios() {
        return this.idProgrEstudios;
    }
    
    public void setIdProgrEstudios(Integer idProgrEstudios) {
        this.idProgrEstudios = idProgrEstudios;
    }
    @Temporal(TemporalType.DATE)
    @Column(name="FECHA_INI", length=10)
    public Date getFechaIni() {
        return this.fechaIni;
    }
    
    public void setFechaIni(Date fechaIni) {
        this.fechaIni = fechaIni;
    }
    @Temporal(TemporalType.DATE)
    @Column(name="FECHA_FIN", length=10)
    public Date getFechaFin() {
        return this.fechaFin;
    }
    
    public void setFechaFin(Date fechaFin) {
        this.fechaFin = fechaFin;
    }
    
    @Column(name="ID_SEDE")
    public Integer getIdSede() {
        return this.idSede;
    }
    
    public void setIdSede(Integer idSede) {
        this.idSede = idSede;
    }
    
    @Column(name="HORA_INI", length=5)
    public String getHoraIni() {
        return this.horaIni;
    }
    
    public void setHoraIni(String horaIni) {
        this.horaIni = horaIni;
    }
    
    @Column(name="HORA_FIN", length=5)
    public String getHoraFin() {
        return this.horaFin;
    }
    
    public void setHoraFin(String horaFin) {
        this.horaFin = horaFin;
    }
    
    @Column(name="GRUPO", unique=true)
    public Integer getGrupo() {
        return this.grupo;
    }
    
    public void setGrupo(Integer grupo) {
        this.grupo = grupo;
    }
    
    @Column(name="REFERENCIA", unique=true, length=20)
    public String getReferencia() {
        return this.referencia;
    }
    
    public void setReferencia(String referencia) {
        this.referencia = referencia;
    }
    @Column(name="NOMBRE", length=45)
    public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	  @Column(name="EMPRESA", length=45)
	    public String getEmpresa() {
	        return this.empresa;
	    }
	    
	    public void setEmpresa(String empresa) {
	        this.empresa = empresa;
	    }
	    
	    @Column(name="ALUMNOS", length=45)
	    public String getAlumnos() {
	        return this.alumnos;
	    }
	    
	    public void setAlumnos(String alumnos) {
	        this.alumnos = alumnos;
	    }
	    
	    @Column(name="INSTRUCTOR", length=45)
	    public String getInstructor() {
	        return this.instructor;
	    }
	    
	    public void setInstructor(String instructor) {
	        this.instructor = instructor;
	    }
	    
	    @Column(name="HORAS_INSTRUCTOR")
	    public Integer getHorasInstructor() {
	        return this.horasInstructor;
	    }
	    
	    public void setHorasInstructor(Integer horasInstructor) {
	        this.horasInstructor = horasInstructor;
	    }
	    
	    @Column(name="PRACTICA", length=45)
	    public String getPractica() {
	        return this.practica;
	    }
	    
	    public void setPractica(String practica) {
	        this.practica = practica;
	    }
	    
	    @Column(name="DIAS_IMP")
	    public Integer getDiasImp() {
	        return this.diasImp;
	    }
	    
	    public void setDiasImp(Integer diasImp) {
	        this.diasImp = diasImp;
	    }
	    
	    @Column(name="EMISION", length=45)
	    public String getEmision() {
	        return this.emision;
	    }
	    
	    public void setEmision(String emision) {
	        this.emision = emision;
	    }

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="cursos")
    public Set<CalifCursos> getCalifCursoses() {
        return this.califCursoses;
    }
    
    public void setCalifCursoses(Set<CalifCursos> califCursoses) {
        this.califCursoses = califCursoses;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="cursos")
    public Set<AlumnosCursos> getAlumnosCursoses() {
        return this.alumnosCursoses;
    }
    
    public void setAlumnosCursoses(Set<AlumnosCursos> alumnosCursoses) {
        this.alumnosCursoses = alumnosCursoses;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="cursos")
    public Set<CursosMaterias> getCursosMateriases() {
        return this.cursosMateriases;
    }
    
    public void setCursosMateriases(Set<CursosMaterias> cursosMateriases) {
        this.cursosMateriases = cursosMateriases;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="cursos")
    public Set<AsistenciaCurso> getAsistenciaCursos() {
        return this.asistenciaCursos;
    }
    
    public void setAsistenciaCursos(Set<AsistenciaCurso> asistenciaCursos) {
        this.asistenciaCursos = asistenciaCursos;
    }


	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + idCurso;
		return result;
	}


	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Cursos other = (Cursos) obj;
		if (idCurso != other.idCurso)
			return false;
		return true;
	}


	@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_INSTRUCTOR")
	public Instructores getInstructores() {
		return instructores;
	}


	/**
	 * @param instructores the instructores to set
	 */
	public void setInstructores(Instructores instructores) {
		this.instructores = instructores;
	}




}


